ПРЯМІ ТА ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРИЧНИХ РІВНЯНЬ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
ЗІ
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження систем керування

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра КСА Звіт з лабораторної роботи №2 з курсу “Комп’ютерні методи дослідження систем керування” ПРЯМІ ТА ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРИЧНИХ РІВНЯНЬ Варіант №2 Львів-2014 Мета роботи: вивчити найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебричних рівнянь та способи їх застосування для обчислення визначників і обертання матриць. Завдання: Розв’язати систему рівнянь методом Гауса з вибором головного елемента по стовпцю  Код програми: #include<iostream> #include <stdio.h> #include <math.h> #include <stdlib.h> #define n 4 #define n1 n+1 using namespace std; void WriteSLAR(void); void WriteterraSLAR(void); float terraSLAR[n][n1]; float SLAR[n][n1]={{ 8.3, 2.62, 4.1, 1.9, -10.65}, {3.92, 8.45, 7.78, 2.46, 12.21}, {3.37, 7.21, 8.04, 2.28, 15.45}, {2.21, 3.65, 1.69, 6.69, -8.35}}; float A[n][n]={{ 8.3, 2.62, 4.1, 1.9}, {3.92, 8.45, 7.78, 2.46}, {3.37, 7.21, 8.04, 2.28}, {2.21, 3.65, 1.69, 6.69}}; int main() { float process, X[n1]; short int i, j, k; float max, value; int w,l,k1,d; setlocale(0,""); WriteSLAR(); for(int i=0; i<n1; i++) { for(int j=0; j<n1; j++) { terraSLAR[i][j]=SLAR[i][j]; } } for(k1 = 0;k1<n1;k1++) { max = terraSLAR[k1][k1]; w = k1; for(l=k1+1;l<n1;l++) { if(max < terraSLAR[l][k1]) { max = terraSLAR[l][k1]; w=l; } } for(d=1;d<n1;d++) { value=terraSLAR[k1][d]; terraSLAR[k1][d]=terraSLAR[w][d]; terraSLAR[w][d]=value; } } WriteterraSLAR(); //Прямий хід for (i=0; i<n; i++) { process=terraSLAR[i][i]; for (j=n;j>=i;j--) terraSLAR[i][j]/=process; for (j=i+1;j<n;j++) { process=terraSLAR[j][i]; for (k=n;k>=i;k--) terraSLAR[j][k]-=process*terraSLAR[i][k]; } } // Обернений хід X[n-1] = terraSLAR[n-1][n]; for (i=n-2; i>=0; i--) { X[i] = terraSLAR[i][n]; for (j=i+1;j<n;j++) X[i]-=terraSLAR[i][j]*X[j]; } //Вивід результату printf("\nРезультати:\n"); for (i=0; i<n; i++){ printf("x%d=%3.2f\n", i+1, X[i]);} //Проведення перевірки printf("\nПеревiрка:\n"); for (i=0; i<n; i++) { float sum=0; for (j=0; j<n; j++) sum+=A[i][j]*X[j]; printf("%3.2f\n", sum); } } // Вивід початкової СЛАР void WriteSLAR(void) { printf("\nПочаткова СЛАР:\n"); int i,j; for (i=0 ;i<n; i++) { for (j=0; j<n; j++) printf("% + 3.2f*x%d",SLAR[i][j],j+1); printf("=%3.2f\n",SLAR[i][n]); } } // Вивід результату роботи метода шукаючого найбільший елемент в стовпці void WriteterraSLAR(void) { printf("\nПiсля пошуку найбiльшого елемента в стовпцi:\n"); int i,j; for (i=0 ;i<n; i++) { for (j=0; j<n; j++) printf("% + 3.2f*x%d",SLAR[i][j],j+1); printf("=%3.2f\n",terraSLAR[i][n]); } } Результати: /
Антиботан аватар за замовчуванням

12.04.2016 16:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини